20967
20190
Αυτή η ερώτηση έχει ήδη απαντήσεις εδώ:
Πώς μπορώ να επιστρέψω την απάντηση από μια ασύγχρονη κλήση;
(42 απαντήσεις)
Κλειστό πριν από 5 μήνες.
Επομένως, όταν εκτελείτε τον ακόλουθο κώδικα, η απάντηση του console.log (ba) είναι απροσδιόριστη
Αλλά όταν το δοκιμάζω στην κονσόλα Chrome V8 παίρνω τη σωστή έξοδο που περιμένω. Δεν είμαι απόλυτα σίγουρος τι συμβαίνει εδώ.
ας βα;
συνάρτηση Setqa () {
(async () => {
περιμένετε ανάκτηση ('question.json')
.then (res => res.json ())
.then (async (δεδομένα) => {
ba = αναμονή δεδομένων;
});
}) ();
}
Σετκα ();
console.log (ba);
Τα περιεχόμενα του αρχείου json είναι τα εξής:
"ερωτήσεις": [{
"questionType": "πολλαπλάσιο",
"ερώτηση": "Πώς είναι ο καιρός",
"απαντήσεις": "",
"ερώτηση απάντηση": ""
},
{
"questionType": "πολλαπλάσιο",
"ερώτηση": "Πώς είσαι σήμερα;",
"απαντήσεις": " 1",
"questionAnswer": "textPurpose1"
}
] 
Υποθέτω ότι πρέπει να λειτουργήσει
ας βα;
συνάρτηση Setqa () {
επιστροφή ανάκτησης ('questions.json')
.then (res => res.json ())
.then (async (δεδομένα) => {
ba = αναμονή δεδομένων;
});
}
Setqa (). Τότε (() => console.log (ba));
Αλλά μια καλύτερη προσέγγιση θα ήταν
συνάρτηση async setQa () {
const res = αναμονή ανάκτησης ('question.json');
επιστροφή res.json ();
}
ας ba = περιμένουμε το setQa ();
|
Δεν είναι η απάντηση που ψάχνετε; Περιηγηθείτε σε άλλες ερωτήσεις με ετικέτα javascript json fetch console.log ή κάντε τη δική σας ερώτηση.